/*
` * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ill_be_bach.model;

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;

/**
 *
 * @author Abhi
 */
public enum KeySignature {
    CMajor_AMinor(new ArrayList<Key>()),
    GMajor_EMinor(Arrays.asList(Key.F)),
    DMajor_BMinor(Arrays.asList(Key.F, Key.C)),
    AMajor_FSharpMinor(Arrays.asList(Key.F, Key.C, Key.G)),
    EMajor_CSharpMinor(Arrays.asList(Key.F, Key.C, Key.G, Key.D)),
    BMajor_GSharpMinor(Arrays.asList(Key.F, Key.C, Key.G, Key.D, Key.A)),
    FSharpMajor_DSharpMinor(Arrays.asList(Key.F, Key.C, Key.G, Key.D, Key.A, Key.E)),
    GFlatMajor_EFlatMinor(Arrays.asList(Key.B, Key.E, Key.A, Key.D, Key.G, Key.C)),
    DFlatMajor_BFlatMinor(Arrays.asList(Key.B, Key.E, Key.A, Key.D, Key.G)),
    AFlatMajor_FMinor(Arrays.asList(Key.B, Key.E, Key.A, Key.D)),
    EFlatMajor_CMinor(Arrays.asList(Key.B, Key.E, Key.A)),
    BFlatMajor_GMinor(Arrays.asList(Key.B, Key.E)),
    FMajor_DMinor(Arrays.asList(Key.B));

   private List<Key> accidentalKeys ;

    private KeySignature(List<Key> accidentalKeys) {
        this.accidentalKeys = accidentalKeys;
    }

    public List<Key> getAccidentalKeys() {
        return accidentalKeys ;
    }

    private static List<KeySignature> flatSignatures = Arrays.asList(
            GFlatMajor_EFlatMinor, DFlatMajor_BFlatMinor, AFlatMajor_FMinor,
            EFlatMajor_CMinor, BFlatMajor_GMinor, FMajor_DMinor);
    public boolean isFlatSignature() {
        return flatSignatures.contains(this);
    }
}
